Von: Ken Chapman [ken.chapman@xilinx.com]
Gesendet: Mittwoch, 20. Februar 2008 12:25
An: Klaus Philipp
Betreff: RE: Spartan 3E undocumented DCM feature

Dear Klaus,

 

Thanks for the photos; its always nice to see something working J

 

Regarding operation at 200MHz. I guess you could call it a bug but only because it goes wrong rather than display “LIMIT” or something similar. The issue is that the design takes the 50MHz clock from the board and multiplies it by 4 to generate 200MHz internally. After that, everything relates to that 200MHz.

 

Once you are above 50MHz the output is purely down to the phase accumulator output being multiplied by 16 by the DCM and then divided by 2 (to ensure square wave).

 

                       ; Also for frequencies of 50MHz and above, there is no additional division performed

                       ; after the DCM which multiplies frequency and reduces the jitter. Therefore the DDS_scaling

                       ; word will be set to zero and the output of the DCM will divide by 2.

                       ;

                       ;   Freq     DDS control word    DDS Scaling      Synthesized Frequency

                       ;                                                  of Phase Accumulator

                       ;

                       ;  50MHz      08000000              00                   6.25MHz

                       ; 100MHz      10000000              00                  12.50MHz

                       ;

                       ; You will notice that for frequencies of 50MHz and above, the upper byte of the

                       ; DDS control word is 08 hex or greater. In other words, bit3 and/or bit4 of that byte

                       ; are High (bits 27 and/or 28 of the full 32-bit word). This is the indication that

                       ; the control words are complete.

 

 

Once you are above 100MHz the output is of the phase accumulator is running above its normal maximum of 12.5MHz and so internally stuff is running very fast. The output of the second DCM will be as much as 400MHz and it’s really impressive it is working. Of course the counter used to divide that 400MHz will not be working properly but since we only tap off the divide by 2 stage you get away with it! J

 

100MHz was my safe limit but 200MHz is pushing the envelope so I wouldn’t advise ‘fixing’ the PicoBlaze math’s just to break the silicon. If you want higher then really this is where you need to do something more logical. Remember that internally the frequency is already up to 400MHz so really you just need to bring that out directly rather than divided by 2. May be if you use a DDR clock forwarding technique on the output in you can keep it fairly square. By now you should probably be into differential clocks anyway. However, you need to remember that the jitter is more or less constant so as your frequency increases the % jitter is getting larger and larger.

 

Some years ago we made some small frequency generator boxes using this scheme but they went up to 640MHz by adding an external PPL that multiplied by 8 and really reduced jitter. In other words the FPGA did all the smart stuff and then the external PPL just did the translation to high frequency. It also had an LVDS output.

 

Regards,

 

Ken

 


From: Klaus Philipp [mailto:philipp.klaus@t-online.de]
Sent: 19 February 2008 20:46
To: Ken Chapman
Subject: AW: Spartan 3E undocumented DCM feature

 

Dear Ken,

 

Thanks for your help. I’m considering using the parts of enterpoint. They are cheap enough, easy to handle and easy to order. I like British companies. They like Credit Cards. It’s not a joke. I will use their parts in my final design.

But digikey was faster. So I have built a new ugly board with a XC3S500E-PQ208 device. I like to now every pin personally. Especially the power pins. One mistake and the chip will die after power on. But everything worked fine. The pictures are attached.

The next step was to load my favourite design, “Ken Chapman’s frequency generator”. Everything worked very fine. Then I tried to check the maximum frequency.

199 999 999 was OK. But with 200 000 000 the display showed 08000000 and 1F instead of 20000000 and 00.

It seems there is a small software bug in the PicoBlaze software. I have tried to find the fault. In the routine normalize loop, I hoped to find the problem, but I was wrong. Could you help me again, I’m afraid I’m too stupid.

 

Regards,

 

Klaus Philipp

 


Von: Ken Chapman [mailto:ken.chapman@xilinx.com]
Gesendet: Montag, 28. Januar 2008 14:18
An: Klaus Philipp
Betreff: RE: Spartan 3E undocumented DCM feature

 

Dear Klaus,

 

When possible try to purchase boards rather than devices. For such low volume (experiments) the use of boards is just a lot easier to handle physically. They may cost a bit more but they save you a lot of time and effort (and probably save you breaking some too!).

 

Have a look at these…..

 

http://www.enterpoint.co.uk/

 

I really like the look of this one for prototyping…..

 

http://www.enterpoint.co.uk/component_replacements/craignell.html

 

 

 

Regards,

 

Ken

 

 

 


From: Klaus Philipp [mailto:philipp.klaus@t-online.de]
Sent: 25 January 2008 21:18
To: Ken Chapman
Subject: AW: Spartan 3E undocumented DCM feature

 

Dear Ken,

 

Thank you very much, for your fast and clear answer. It is a great help for me. I could do a clear decision for the chip XC3S500E-4PQ208. It’s possible to order the part at Digikey as a normal human. So this evening I will order 4 parts at Digikey. In Germany it’s difficult to order special electronic parts. When you try to order components from a distributor, you will hear the question: Would you like to order 100 or 1000. They don’t want to hear 4 parts only. When I ask for samples, there is no problem to get some. But then I would have to lie. What project, how many parts a year and so on? But in this case it is necessary to tell the truth. Therefore this way is impossible. Sometimes I think in Germany it’s easier to steel then to buy. But that is an issue in Germany and I don’t want it to blame it to XILINX. I will get my parts from Digikey. Nevertheless I will try to persuade two German companies to offer the XC3SxxxE parts. Those companies are: Reichelt Elektronik and Segor in Germany.  

 

Now I’m going to rebuild my ugly prototype board to the XC3S500E type. I guess it will take a few hours, but it’s worth it. With your help I will be able to finish my design successfully.

 

Thank you very much for your answer my question on the publishing. It’s clear that I can not distribute things that don’t belong to me. I don’t want to distribute things like Pico Blaze or ISE or anything that belongs to XILINX or a third party.

 

My intension is to split your frequency generator or your frequency counter into a separate block of the design. Without Pico Blaze and the rest. I would like to show what is possible with XILINX DCM of the Spartan 3e series. The reason that I want to use parts of your designs is: Your comments are so clear, even a stupid than I can understand it. I hope the rest of the world will understand it also.

 

Before publishing I will send the article to you (in English language). Without your permission I won’t do anything.

 

Yours sincerely,

 

Klaus Philipp

 


Von: Ken Chapman [mailto:ken.chapman@xilinx.com]
Gesendet: Montag, 21. Januar 2008 12:02
An: Klaus Philipp
Cc: Carsten Meyer; Clemens Völker; Markus Hagemann
Betreff: RE: Spartan 3E undocumented DCM feature

 

Dear Klaus,

 

Thank your or your interesting email. Unfortunately, I am very busy so I will have to make the shortest of answers to your questions. Please see these below.

 

 

First question:

 

ten month ago, I had bought a Spartan 3E development board DO-SP3E1600E-DK-UNI-G.

I checked your designs the frequency generator and the frequency counter. Everything worked very well.

Then I build an ugly Spartan 3 board. Fist I implemented your designs for a XC3S400 chip.

But your bitgen option for the DCM

-g cfg_dfs_s_x1y1:1111000011111111xxx111xxxxx1xxxxxxxxxx1xxxxxxxxxxxxxxxxxxxxxxxxxxxxx01000000

didn’t work.

My question is: Is there a similar DCM option for the XC3S400 chip also?

 

 

Spartan-3 is the old product and Spartan-3E is the new product. The DCM is NOT the same. Although we conducted initial experiments into ‘frequency alignment’ using the Spartan-3 device we discovered that it was not correct and then changes were made before Spartan-3E was implemented. So whilst there is (or was) a similar option for the older Spartan-3 devices it really does not work properly and should never be used. Please use Spartan-3E.

 

 

 

Second question:

 

In a few months I will have to finish a design with a FPGA for the German computer magazine C’T.

They are running a very interesting project.

http://www.heise.de/ct/projekte/ct-lab/

And now I have to decide what kind of FPGA is the best. Should I use a XC3S400 or a XC3S250E chip?

 

 

The Spartan-3E and Spartan-3A(N) devices are newer and consequently include improvements. When sold correctly they are also lower price than then older Spartan-3 devices. Unless there is a really compelling reason to use old technology then please move forward and use 3E or 3A(N).

 

 

The chip XC3S400 is in Germany easy to order, but I guess there is a problem with the DCMs.

With the chip XC3S250E, there is no problem with the DCMs, but for normal people like students,

it’s not possible to order this part. What part would you recommend?

 

Sorry, I am not in sales or the University program so I can not understand why you should have supply issues. I will forward your email to the Xilinx University Program team as they should be interested in your issue!

 

 

Third question:

 

I would like to use some parts of your designs for my article. Most of the work was the programming of

the Pico Blaze processor. Those tasks will be provided by the external processor ATMEGA32.

You know it better than I, a phase accumulator or a 32 bit counter is just a six liner in VHDL.

I would like to realize your frequency generator and your frequency counter as blocks in the design.

Until now I designed a SPI interface for the ATMEGA32 and emulated the AD9833 chip.

When the design is finished I will send it to you. Without your permission I’m not going to publish it.

Do I need your permission or not?

 

 

I really don’t think you need permission to publish material providing you acknowledge the source. Just be careful NOT to distribute anything which you are not entitled to distribute. For example, you will notice that my reference designs for the Spartan Starter Kits do NOT include PicoBlaze. These reference designs provide the source code for the design only and then tell you to obtain PicoBlaze files from the web site. This is because PicoBlaze is covered by a license agreement. In the same way you can not distribute the ISE tools.

 

Normally we are very excited that people should publish material using our devices. Providing you are publishing material in a positive ‘spirit’ then everyone will be happy! It is only natural that if you blatantly distribute information that should not be distributed and also use that in a negative way towards Xilinx then that is when legal people become upset! J

 

 

 

A short history of why this happened:

 

Ten months ago I had to train a student of the University of Bremen. I have seen he is a very smart student and interested in VHDL design. Because I needed a VGA test picture generator, I PERSUADED him to program it in VHDL with XILINX. Therefore I ordered the DO-SP3E1600E-DK-UNI-G development board and paid it with my own money. He learned very fast and to check he’s designs in my free time, I build the ugly XC3S400 board.

He’s results were very good. With your frequency generator we can change the pixel clock of the VGA test picture generator in 1 Hz steps. Then I bought a SPARTAN 3E Starter Kit with my own money and spend it as a gift to our subcontractor. He did me a great favor at eastern 2007. Now our subcontractor is able to deliver LCD-Screens with a valid VGA timing.

If you are interested, I will send the design of the VGA test picture generator to you.

 

 

We really would like to put more customer designs onto our reference design web site and this sounds like an ideal one. The main thing that stops us putting customer designs on web sites is the publishing conditions of the customers and the general lack of information. Assuming you want to share your design then the first should not be an issue. I hope you have appreciated the detail provided with my reference designs and as a result you have been able to make good progress without asking too many technical questions. Unfortunately if a design is not well presented then it causes hundreds of questions to be asked to our support team and direct to the author of the design. So however good a reference design is as doing what it does, I have to say that its value is very low unless it is well presented and documented. I can not possibly ask you to put in that effort but obviously I would be delighted if you did and then we could put it on our web site.

 

 

Yours sincerely,

 

Ken Chapman